const db = require('../db/index')


// 获取文章分类接口
exports.getArticleCates = (req, res) => {
  const sql = `select * from ev_article_cate where is_delete = 0 order by id asc`
  db.query(sql, (err, results) => {
    if (err) return res.cc(err)
    res.send({
      status: 0,
      message: '获取文章分类成功',
      data: results
    })
  })
}

// 新增文章分类的接口
exports.addArticleCates = (req, res) => {
  // 查询用户输入的 name 和 alias  是否被占用
  const sql = `select * from ev_article_cate where name = ? or alias = ?`
  db.query(sql, [req.body.name, req.body.alias], (err, results) => {
    if (err) return res.cc(err)
    if (results.length === 2) return res.cc('分类名称与别名被占用，请更换后重试！')
    if (results.length === 1 && results[0].name === req.body.name && results[0].alias === req.body.alias) return res.cc('分类名称与别名被占用，请更换后重试！')
    if (results.length === 1 && results[0].name === req.body.name) return res.cc('分类名称被占用，请更换后重试！')
    if (results.length === 1 && results[0].alias === req.body.alias) return res.cc('分类别名被占用，请更换后重试！')
    // 新增文章分类
    const sqlStr = `insert into ev_article_cate set ?`
    db.query(sqlStr, req.body, (err, results) => {
      if (err) return res.cc(err)
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增文章分类失败！')
      res.cc('新增文章分类成功', 0)
    })
  })

}

// 根据 Id 删除文章分类的接口
exports.deleteCateById = (req, res) => {
  const sql = `update ev_article_cate set is_delete = 1 where id = ?`
  db.query(sql, req.params.id, (err, results) => {
    if (err) return res.cc(err)
    if (results.affectedRows !== 1) return res.cc('删除文章分类失败！')
    res.cc('删除文章分类成功', 0)
  })
}

// 根据 Id 获取文章分类数据的接口
exports.getArtCateById = (req, res) => {
  const sql = `select * from ev_article_cate where id=?`
  db.query(sql, req.params.id, (err, results) => {
    if (err) return err.cc(err)
    if (results.length !== 1) return res.cc('根据 Id 获取文章分类数据失败！')
    res.send({
      status: 0,
      message: '根据 Id 获取文章分类数据成功',
      data: results[0]
    })
  })
}

//根据 id 更新文章分类
exports.updateCate = (req, res) => {
  // 在 ev_article_cate 表中查找 id 不为 用户用户输入的 id , 在这里面查找 name 和 alias 是否被占用
  const sql = `select * from ev_article_cate where id <> ? and (name = ? or alias = ?) `
  db.query(sql, [req.body.id, req.body.name, req.body.alias], (err, results) => {
    if (err) return res.cc(err)
    if (results.length === 2){
      // console.log(results);
      return res.cc('分类名称与别名被占用，请更换后重试！')
    } 
    if( results.length === 1 && results[0].name === req.body.name && results[0].alias === req.body.alias) {
      // console.log(results);
      return res.cc('分类名称与别名被占用，请更换后重试！')
    }
    if (results.length === 1 && results[0].name === req.body.name) return res.cc('分类名称被占用，请更换后重试！')
    if (results.length === 1 && results[0].alias === req.body.alias) return res.cc('分类别名被占用，请更换后重试！')
    const sqlStr = `update ev_article_cate set ? where id = ?`
    db.query(sqlStr, [req.body,req.body.id],(err, results) =>{
      if (err) return res.cc(err)
      if (results.affectedRows !== 1) return res.cc('更新文章分类失败！')
      res.cc('更新文章分类成功', 0)
    })

  })
}